package notwork;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Socket;
import java.net.SocketException;

public class UdpEchoServer_1 {
    private DatagramSocket socket=null;

    public UdpEchoServer_1(int port) throws SocketException {
        socket=new DatagramSocket(port);
    }

    public void start() throws IOException {
        System.out.println("服务器启动");

        while(true){
            DatagramPacket requestPacket=new DatagramPacket(new byte[4096],4096);
            socket.receive(requestPacket);
            String request=new String(requestPacket.getData(),0,requestPacket.getLength());
            String reponse=process(request);
            DatagramPacket reponsePakcet=new DatagramPacket(reponse.getBytes(),
                    reponse.getBytes().length,requestPacket.getSocketAddress());
            socket.send(reponsePakcet);
            System.out.printf("[%s:%d]  req:%s   rep:%s\n",requestPacket.getAddress().toString(),requestPacket.getPort(),
                    request,reponse);
        }
    }

    private String process(String request){
        return request;
    }

    public static void main(String[] args) throws IOException {
        UdpEchoServer_1 udpEchoServer_1=new UdpEchoServer_1(8989);
        udpEchoServer_1.start();
    }
}
